/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

/**
 *
 * @author maureyes
 */
public class Parser {

    public static int getRID(String linea){
        String[] lineaSeparada = linea.split("_");
        String ridValor = lineaSeparada[1];
        String[] queryParseada = ridValor.split(";");
        String rid = queryParseada[0];
        return Integer.parseInt(rid);
    }

    public static ProcesaConsultas.Operaciones getOperacion(String linea){
        String[] lineaSeparada = linea.split("_");
        String operacion = lineaSeparada[0];
        if (operacion.equals("SELECT")) {
            return ProcesaConsultas.Operaciones.SELECT;
        }
        if (operacion.equals("UPDATE")) {
            return ProcesaConsultas.Operaciones.UPDATE;
        }
        if (operacion.equals("INSERT")) {
            return ProcesaConsultas.Operaciones.INSERT;
        }
        if (operacion.equals("DELETE")) {
            return ProcesaConsultas.Operaciones.DELETE;
        }
        if (operacion.equals("SCAN")) {
            return ProcesaConsultas.Operaciones.SCAN;
        }

        return null; //No se logra interpretar la consulta
    }

    /**
     * Parsea una línea de consulta de cliente y devuelve el valor
     * @param linea
     * Va a ser del formato: COMANDO_RID;VALOR
     * @return VALOR
     */
    public static String getValor(String linea){
        String[] lineaSeparada = linea.split("_");
        String ridValor = lineaSeparada[1];
        String[] queryParseada = ridValor.split(";");
        String valor = queryParseada[1];
        return valor;
    }

    /***
     * Se parsea la direccion que manda el cliente para que el servidor le responda la query a
     * esa direccion
     * @param mensajeDireccionCliente
     * @return
     */
    public static Direccion parsearDireccionCliente(String mensajeDireccionCliente) {
        try{
            Direccion direccionRespuesta = null;
            String direccionAParsear;
            if(mensajeDireccionCliente.charAt(0)=='#'){
                direccionAParsear=mensajeDireccionCliente.substring(1);
                String[] direccionParseada = direccionAParsear.split(";");
                direccionRespuesta = new Direccion( Integer.parseInt(direccionParseada[0]),
                        direccionParseada[1], Integer.parseInt(direccionParseada[2]),
                        Integer.parseInt(direccionParseada[3]),
                        Integer.parseInt(direccionParseada[4]));
            }
            return direccionRespuesta;
        }catch(Exception ex){
            return null;
        }
    }


}
